数据预处理
PyCaret 中可用的数据预处理与转换
数据准备、缩放与变换、特征工程、特征选择、其他设置参数
缺失值
数据集出于各种原因可能包含缺失值或空记录,通常编码为空白或 NaN。大多数机器学习算法无法处理缺失值。
数据类型
数据集中每个特征都有一个关联的数据类型,例如数值型、类别型或日期时间型。PyCaret 会自动检测每个特征的数据类型。
独热编码
数据集中的类别特征包含标签值(有序或无序),而不是连续数值。大多数机器学习算法在没有编码的情况下无法处理类别数据。
序数编码
当数据集中的类别特征包含具有内在自然顺序的变量时,例如 低、中、高,这些必须与名义变量(例如性别)采用不同的编码方式。
基数编码
当数据集中的类别特征包含许多级别(也称为高基数特征)时,典型的独热编码会导致创建大量的新特征。
目标不平衡
当训练数据集中目标类别的分布不均时,可以在 setup 中使用 fix_imbalance 参数来修复。
去除异常值
PyCaret 中的 remove_outliers 函数允许你在训练模型之前识别并移除数据集中的异常值。
归一化
归一化是常在机器学习数据准备中使用的一种技术。归一化的目标是重新缩放数值列的值,而不扭曲数值范围之间的差异。
特征变换
在将数据重新缩放到新范围以减少幅度对方差影响的同时,特征变换是一种更激进的技术。变换会改变分布的形状。
目标变换
目标变换类似于特征变换,但它改变的是目标变量的分布形状,而不是特征的分布。
特征交互
在机器学习实验中,经常出现当两个特征通过算术运算组合后,在解释数据方差方面比这两个特征单独更有意义的情况。
多项式特征
在机器学习实验中,因变量与自变量之间的关系常被假定为线性,但情况并非总是如此。有时因变量与自变量之间的关系更为复杂。
分组特征
当数据集包含以某种方式相关的一组特征时,例如在固定时间间隔记录的特征,可以为这类特征组生成新的统计特征,如均值、中位数、方差和标准差。
数值特征分箱
特征分箱是一种将连续变量转换为类别值的方法,使用预定义的箱数。当连续特征具有过多唯一值或存在少量超出预期范围的极端值时,这种方法很有效。
合并稀有类别
有时数据集中的某个类别特征(或多个类别特征)具有非常多的级别(即高基数特征)。如果将此类特征编码为数值,则生成的矩阵可能是稀疏矩阵。
创建聚类
使用现有特征创建聚类是一种无监督的机器学习技术,用于工程化并创建新特征。
特征选择
特征选择是一个用于选择数据集中对预测目标变量贡献最大的特征的过程。使用选定的特征而非全部特征可以降低过拟合风险、提高准确性并减少训练时间。
去除多重共线性
多重共线性(也称为共线性)是指数据集中某个特征变量与同一数据集中的另一个特征变量高度线性相关的现象。
主成分分析
主成分分析(PCA)是一种用于降低数据维度的无监督技术。它通过压缩特征空间来实现降维。#### 忽略低方差
有时数据集可能包含一个具有多个取值的分类特征,其取值分布可能偏斜,某个取值可能会主导其他取值。
必需参数
setup 函数中只有两个非可选参数,即 data 和目标变量的名称。
实验日志
PyCaret 使用 MLflow 进行实验追踪。setup 中的一个参数可以设置为自动追踪所有指标、超参数及其他模型产物。
模型选择
setup 中的参数可用于为模型选择过程设置参数。这些参数与数据预处理无关,但会影响模型选择流程。
其他杂项
setup 中的其他杂项参数用于控制实验设置,例如使用 GPU 进行训练或设置实验的详细级别。